//
//  PortOut.h
//  CocoaSynth
//
//  Created by Jérémy Brault on 06/02/10.
//  Copyright 2010 None. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "PortOutProtocol.h";

@protocol ConnectorProtocol;
@protocol ComputingStrategyProtocol;
@protocol SampleProtocol;

@class Module;

/*!
    @class			PortOut 
    @superclass		NSObject <PortOutProtocol>
    @abstract		PortOut is a simple implementation of PortOutProtocol allowing the writing of a sample on a port through a property 
					<em>outputSample</em>. 
*/
@interface PortOut : NSObject <PortOutProtocol>
{
	id<ConnectorProtocol> connector;
	id<ComputingStrategyProtocol> computingStrategy;
	id<SampleProtocol> outputSample;
	BOOL dispatcher;
	Module* module;
}

@property (retain) id<ConnectorProtocol> connector;
@property (retain) id<ComputingStrategyProtocol> computingStrategy;
@property (copy) id<SampleProtocol> outputSample;
@property (assign, getter = isDispatcher) BOOL dispatcher;
@property (assign) Module* module;

@end